package principal;

import tsb.sax.ContentHandlerModel;
import tsb.sax.SAXException;
import tsb.util.AtributoValor;
import tsb.dom.*;

/**
 *
 * @author ZV Admin
 */
public class ManejadorDOM implements ContentHandlerModel {

    private DomXML doc;

    public DomXML getDocumento() {
        return doc;
    }

    public void inicioDocumento() throws SAXException {
        doc = new DomXML();
    }

    public void finDocumento() throws SAXException {
        doc.setFinDeElemento();
    }

    public void tagInicio(String nombreTag, String tagLeido, AtributoValor[] variables) throws SAXException {
        Elemento e = new Elemento(nombreTag);
        Atributo a;

        if(variables.length > 0){
            for(int i = 0; i< variables.length; i++){

                a = new Atributo(variables[i].getNombre(), new ValorAtributo(0, variables[i].getValor()));
                e.agregarAtributo(a);
            }
        }
        doc.agregarElementoAlDocumento( e );
    }

    public void tagFinal(String nombreTag, String tagLeido) throws SAXException {
        doc.setFinDeElemento();
    }

    public void addContenido(String contenido) throws SAXException {
        doc.setContenido(contenido);
    }

    public void prologoXML(AtributoValor[] variables) throws SAXException {

        for (int i = 0; i < variables.length; i++) {
            AtributoValor atributo = variables[i];
            doc.getEncabezado().agregar( new Atributo(atributo) );
        }
    }
}